1   /*
2    * Hibernate, Relational Persistence for Idiomatic Java
3    *
4    * Copyright (c) 2010, Red Hat Inc. or third-party contributors as
5    * indicated by the @author tags or express copyright attribution
6    * statements applied by the authors.  All third-party contributions are
7    * distributed under license by Red Hat Inc.
8    *
9    * This copyrighted material is made available to anyone wishing to use, modify,
10   * copy, or redistribute it subject to the terms and conditions of the GNU
11   * Lesser General Public License, as published by the Free Software Foundation.
12   *
13   * This program is distributed in the hope that it will be useful,
14   * but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
15   * or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU Lesser General Public License
16   * for more details.
17   *
18   * You should have received a copy of the GNU Lesser General Public License
19   * along with this distribution; if not, write to:
20   * Free Software Foundation, Inc.
21   * 51 Franklin Street, Fifth Floor
22   * Boston, MA  02110-1301  USA
23   */
24  package org.hibernate.dialect;
25  import java.sql.Types;
26  
27  /**
28   * An SQL dialect compatible with Progress 9.1C<br>
29   *<br>
30   * Connection Parameters required:
31   *<ul>
32   * <li>hibernate.dialect org.hibernate.sql.ProgressDialect
33   * <li>hibernate.driver com.progress.sql.jdbc.JdbcProgressDriver
34   * <li>hibernate.url jdbc:JdbcProgress:T:host:port:dbname;WorkArounds=536870912
35   * <li>hibernate.username username
36   * <li>hibernate.password password
37   *</ul>
38   * The WorkArounds parameter in the URL is required to avoid an error
39   * in the Progress 9.1C JDBC driver related to PreparedStatements.
40   * @author Phillip Baird
41   *
42   */
43  public class ProgressDialect extends Dialect {
44  	public ProgressDialect() {
45  		super();
46  		registerColumnType( Types.BIT, "bit" );
47  		registerColumnType( Types.BIGINT, "numeric" );
48  		registerColumnType( Types.SMALLINT, "smallint" );
49  		registerColumnType( Types.TINYINT, "tinyint" );
50  		registerColumnType( Types.INTEGER, "integer" );
51  		registerColumnType( Types.CHAR, "character(1)" );
52  		registerColumnType( Types.VARCHAR, "varchar($l)" );
53  		registerColumnType( Types.FLOAT, "real" );
54  		registerColumnType( Types.DOUBLE, "double precision" );
55  		registerColumnType( Types.DATE, "date" );
56  		registerColumnType( Types.TIME, "time" );
57  		registerColumnType( Types.TIMESTAMP, "timestamp" );
58  		registerColumnType( Types.VARBINARY, "varbinary($l)" );
59  		registerColumnType( Types.NUMERIC, "numeric($p,$s)" );
60  	}
61  
62  	public boolean hasAlterTable(){
63  		return false;
64  	}
65  
66  	public String getAddColumnString() {
67  		return "add column";
68  	}
69  
70  	public boolean qualifyIndexName() {
71  		return false;
72  	}
73  }